#include <iostream>
#include <vector>
#include <cstring>
using namespace std;

int main() {
    string l;
    getline(cin, l);
    vector<string> m;
    char * cstr = new char [l.length()+1];
    strcpy (cstr, l.c_str());
    char * token = strtok (cstr, " ");
    while (token != NULL) {
        m.push_back(string(token));
        token = strtok(NULL, " ");
    }
    delete[] cstr;
    int n = 0;
    int n1 = 0;
    int w3 = 0;
    int defi = 0;
    string maxs = "";

    cout << "Кол-во слов: " << m.size() << endl;

    for (int i = 0; i < m.size(); i++) {
        if (isupper(m[i][0])) {
            n++;
        }
    }
    cout << "Кол-во слов с заглавной кириллической буквы: " << n << endl;

    for (int i = 0; i < m.size(); i++) {
        for (int j = 0; j < m[i].size(); j++) {
            if (isalpha(m[i][j])) {
                n1++;
                break;
            }
        }
    }
    cout << "Кол-во слов содержащих латинский символ: " << n1 << endl;

    for (auto elem : m) {
        if (elem.length() <= 3) {
            w3++;
        }
    }
    cout << "Кол-во слов не превышающих 3 символа: " << w3 << endl;

    for (auto elem : m) {
        if (elem.find('-') != string::npos) {
            defi++;
        }
    }
    cout << "Кол-во слов в составе которых имеется дефис: " << defi << endl;

    for (auto elem : m) {
        if (elem.length() > maxs.length()) {
            maxs = elem;
        }
    }
    cout << "Самое длинное слово: " << maxs << endl;
    cout << "Длина слова: " << maxs.length() << endl;

    return 0;
}